import axios from 'axios';

// 创建 axios 实例
const request = axios.create({
    baseURL: 'http://211.154.24.179',
    timeout: 5000
});

// 请求拦截器，在请求头中添加 token
request.interceptors.request.use(
    (config) => {
        const token = localStorage.getItem('vue_admin_template_token');
        console.log('获取到的 token:', token);
        if (token) {
            if (!config.headers) {
                config.headers = {};
            }
            config.headers['Authorization'] = `${token}`;
            console.log('请求头中的 Authorization:', config.headers['Authorization']);
        } else {
            console.log('本地存储中没有有效的 token');
        }
        return config;
    },
    (error) => {
        console.error('请求拦截器错误:', error);
        return Promise.reject(error);
    }
);

// 响应拦截器，处理 token 过期等情况
request.interceptors.response.use(
    (response) => {
        return response.data;
    },
    (error) => {
        if (error.response) {
            if (error.response.status === 401) {
                console.log('Token 过期，请重新登录');
                // 清除本地存储的无效 token
                localStorage.removeItem('vue_admin_template_token');
                // 引导用户登录
                window.location.href = '/login';
            } else if (error.response.data && error.response.data.code === 10103) {
                console.log('Header 中缺少 Authorization 参数，请检查 Token 或重新登录');
                // 清除本地存储的无效 token
                localStorage.removeItem('vue_admin_template_token');
                // 引导用户登录
                window.location.href = '/login';
            }
        }
        console.error('响应拦截器错误:', error);
        return Promise.reject(error);
    }
);

// 创建游戏
export function createGame(data: any) {
    return request({
        url: '/api/game/CreateGame',
        method: 'post',
        data
    });
}

// 创建游戏项
export function createGameTerm(data: any) {
    return request({
        url: '/api/game/CreateGameTerm',
        method: 'post',
        data
    });
}

// 根据 ID 获取游戏信息
export function getGameById(id: number) {
    return request({
        url: `/api/game/GetGameID?id=${id}`,
        method: 'get'
    });
}

// 更新游戏信息
export function updateGame(data: any) {
    return request({
        url: '/api/game/UpdateGame',
        method: 'put',
        data
    });
}

// 根据 ID 获取游戏项信息
export function getGameTermById(id: number) {
    return request({
        url: `/api/game/GetGameTermID?id=${id}`,
        method: 'get'
    });
}

// 获取游戏列表
export function getGameList(page: number, size: number) {
    return request({
        url: '/api/game/GetGameList',
        method: 'get',
        params: {
            page,
            size
        }
    });
}

// 获取游戏项列表
export function getGameTermList() {
    return request({
        url: '/api/game/GetGameTermList',
        method: 'get'
    });
}

// 删除游戏
export function deleteGame(id: number, onSuccess?: () => void) {
    return request({
        url: `/api/game/DeleteGameID/${id}`,
        method: 'delete'
    }).then(() => {
        if (typeof onSuccess === 'function') {
            onSuccess();
        }
    });
}

// 删除游戏项
export function deleteGameTerm(id: number, onSuccess?: () => void) {
    return request({
        url: `/api/game/DeleteGameTermID/${id}`,
        method: 'delete'
    }).then(() => {
        if (typeof onSuccess === 'function') {
            onSuccess();
        }
    });
}

 
    